正则表达式 \d{12}|\d{13}|\d{16}|\d{20}

来源:百度知道 编辑:UC知道 时间:2024/09/20 16:50:23
\d{12}|\d{13}|\d{16}|\d{20}

这样不是表示输入 12或13或16或20位数字都可以么

为什么我输入后,超过12位就开始报错了,只能输入12位,13,16或20位都不符合
我用的VS2005 中的RegularExpressionValidator 控件里填的这个 正则
-----------------------------------------------------------------------
没有这样的写法吧!!!他本身就支持\d
-----------------------------------------------------
换成[0-9]也支持这样的写法.就是|这个 就无法判断是or....读到13就出错.贴一个VS2005里的中国地区电话号码的例子给你启示一下
(\(\d{3}\)|\d{3}-)?\d{8}
------------------------------------------------
我也想不出有什么问题存在.兄弟你加我好友一下.我加你Q远程协助给你看

你这样写永远只会匹配12的,因为到12后它就匹配了,不会继续往前走了。

改成

^\d{12}$|^\d{13}$|^\d{16}$|^\d{20}$

(\(\d{3}\)|\d{3}-)?\d{8}
这个表示不了我家的电话号码:0795-0000000,嘿嘿...
如果这个010-00000000和(010)-00000000能通过这个示例的话,那么说明|是OK的,如果不行,那么|有问题??
整体来看,依然不觉得你写的这个有任何问题.

----------------------
额,不清楚VS2005的规则.[0-9]是有的.
按你所说,能检测到12位,但是后面的就会出错,说明\d{12}没错的了.
看来看去不知道问题出在哪.
MARK下下.

---------------------
VS2005的正则表达式不清楚,
或者尝试将\d改成[0-9]??

---------------------
是的.
不知道你是用什么解析这个正则表达式的.

正则表达式没有统一的标准,各种工具对正则表达式的支持不一样.

好难算啊啊噢